Radio frequency identification (RFID) technology is widely used to provide a non-contact automatic identification system. RFID technology provides an automatic method for efficiently collecting product, place, time or transaction data without human intervention.
A RFID system generally comprises a reader unit that uses an antenna to transmit radio energy to interrogate a responder such as a radio frequency identification (RFID) tag. As is well known, a RFID tag does not have an on-chip battery, but rather receives its energy from the incoming RF signal from the reader unit. The RFID tag uses the energy from the incoming RF signal to extract the data that is stored in the chip of the RFID tag and send the data back to the reader unit. The reader unit can then send the data from the RFID tag to a computer for further processing.
The RFID system usually comprises a reader unit and a plurality of RFID tags. The RFID system can be used to identify persons or objects that have a RFID tag and that are located within the reading range of reader unit. Using a pre-defined communication protocol the reader unit is capable of communicating with all of the RFID tags that are located within range.
In one embodiment of a RFID system the reader unit transmits data to a RFID tag with an amplitude modulated (AM) radio frequency (RF) signal having a frequency in the range from nine hundred MegaHertz (900 MHz) to two and fourth tenths GigaHertz (2.4 GHz). In the RFID tag a demodulator recovers the baseband digital data signal from the incoming RF signal. A demodulator in a RFID tag should be able to recover the baseband digital data signal of a RF amplitude that has sufficient power to power the chip of the RFID tag.
The demodulator in each RFID tag recovers the baseband digital data signal and provides it to a state machine in the RFID tag. If the RFID tag is to provide the reader unit with a response to the input signal (such as a responsive zero signal or a responsive one signal), then the state machine provides backscatter control signals for a backscatter signal to be sent to the reader unit at a particular frequency. The term “backscatter” refers to a method by which a RFID tag communicates with a reader unit.
The baseband digital data signal has a data period that comprises a low going pulse to indicate the presence of a data symbol that has been sent out by the reader unit. The data period of the baseband digital data signal also comprises a high going pulse to indicate to the reader unit when the reader unit is to listen and identify the type of backscatter signal, if any, from the RFID tags in its field.
The period of the low going pulse is coded by pulse width modulation (PWM) for three data symbols that are used in the RFID protocol. The three data symbols are Zero, One, and Null. A timing diagram shown in FIG. 1 illustrates a data period for each of the three RFID data symbols.
The first data period that is illustrated is the data period for the Zero symbol. The low going pulse indicates the beginning of the data symbol. The length of time 100 that occurs between the low going pulse and the high going pulse indicates that the data symbol is a Zero symbol. The remainder of the data period after the high going pulse of the Zero symbol represents the time reserved for the reader unit to detect a backscatter signal, if a backscatter signal is present.
A typical length of time 100 for a Zero symbol is approximately three microseconds (3.0 μs). A typical data period is approximately twelve and one half microseconds (12.5 μs). This means that the time for the reader unit to search for a backscatter signal after a Zero symbol has occurred is approximately nine and one half microseconds (9.5 μs).
The second data period that is illustrated is the data period for the One symbol. The low going pulse indicates the beginning of the data symbol. The length of time 110 that occurs between the low going pulse and the high going pulse indicates that the data symbol is a One symbol. The remainder of the data period after the high going pulse of the One symbol represents time reserved for the reader unit to detect a backscatter signal, if a backscatter signal is present.
A typical length of time 110 for a One symbol is approximately six microseconds (6.0 μs). A typical data period is approximately twelve and one half microseconds (12.5 μs). This means that the time for the reader unit to search for a backscatter signal after a One symbol has occurred is approximately six and one half microseconds (6.5 μs).
The third data period that is illustrated is the data period for the Null symbol. The low going pulse indicates the beginning of the data symbol. The length of time 120 that occurs between the low going pulse and the high going pulse indicates that the data symbol is a Null symbol. The remainder of the data period after the high going pulse of the Null symbol represents time reserved for the reader unit to detect a backscatter signal, if a backscatter signal is present. However, no backscatter response is expected by the reader unit in response to an input Null symbol.
A typical length of time 120 for a Null symbol is approximately nine microseconds (9.0 μs). A typical data period is approximately twelve and one half microseconds (12.5 μs). This means that the time for the reader unit to search for a backscatter signal after a Null symbol has occurred is approximately three and one half microseconds (3.5 μs). As previously mentioned, no backscatter response is expected by the reader unit in response to an input Null symbol.
The state machine in the RFID tag first has to recover and identify a data symbol in the first portion of a data period of the baseband digital data signal. The state machine then performs state transitions to obtain backscatter control signals. The backscatter control signals determine whether a backscatter signal will be sent back to the reader unit during the remaining portion of the data period. If a backscatter signal is to be transmitted, the backscatter control signals also determine a frequency to be used to transmit the backscatter signal.
In order for all of the RFID tags to uniformly and correctly recover the data symbols there are two requirements. The first requirement is that all of the RFID tags must have a reference clock of the same frequency in order to accurately and uniformly measure the pulse and data periods. The second requirement is that all of the RFID tags mutually agree on the pulse widths for the Zero symbol, the One symbol and the Null symbol. T0 this end the reader unit periodically sends out calibration pulses. The reader unit periodically sends out both oscillator calibration pulses and data calibration pulses.
During the oscillator calibration process the reader unit sends to the RFID tags a series of fixed duration oscillator calibration pulses. The state machine in each RFID tag uses the oscillator calibration pulses to tune the on-chip oscillator in its respective RFID tag to a fixed frequency.
During the data calibration process the reader unit sends to the RFID tags a series of data calibration pulses to train the RFID tags to recognize the pulse widths of the data symbols. That is, the data calibration pulses teach the RFID tags to recognize the various pulse widths of the Zero symbol, the One symbol and the Null symbol.
FIG. 2 illustrates a timing diagram showing the data calibration pulses with respect to waveforms of the Zero symbol, the One symbol and the Null symbol. The first data calibration pulse is designated with the symbol “T0”. The T0 pulse indicates the location of the upper bound for the Zero symbol and the location of the lower bound for the One symbol. A typical T0 pulse occurs four and one half microseconds (4.5 μs) after the initial low going pulse of the data symbols.
The second data calibration pulse is designated with the symbol “T1”. The T1 pulse indicates the location of the upper bound for the One symbol and the lower bound for the Null symbol. A typical T1 pulse occurs seven and seventy five hundredths microseconds (7.75 μs) after the initial low going pulse of the data symbol.
The third data calibration pulse is designated with the symbol “T2”. The T2 pulse indicates the location of the boundary for the end of the backscatter period (approximately one microsecond (1.0 μs) before the end of the data period). A typical T2 pulse occurs eleven and one half microseconds (11.5 μs) after the initial low going pulse of the data symbol.
From FIG. 2 it may be seen that the duration of the Zero symbol is less than the duration of the first data calibration pulse T0. That is, the up going pulse at the end of the Zero symbol occurs before the up going pulse at the end of the first data calibration pulse T0.
Similarly, from FIG. 2 it may be seen that the duration of the One symbol is greater than the duration of the first data calibration pulse T0 but less than the duration of the second data calibration pulse T1. The up going pulse at the end of the One symbol occurs after the up going pulse at the end of the first data calibration pulse T0 but before the up going pulse at the end of the second data calibration pulse T1.
Lastly, from FIG. 2 it may be seen that the duration of the Null symbol is greater than the duration of second data calibration pulse T1 but less than the duration of the third data calibration pulse T2. The up going pulse at the end of the Null symbol occurs after the up going pulse of the second data calibration pulse T1 but before the up going pulse of the third data calibration pulse T2.
FIG. 3 illustrates a block diagram 300 of an exemplary prior art demodulator 310 and prior art state machine 320 in an exemplary RFID tag. Demodulator 310 demodulates the input RF signal and provides input data to state machine 320. State machine 320 comprises command state machine 330, edge detect unit 340, timer unit 350, symbol recovery unit 360, data calibration unit 370, and oscillator calibration unit 380.
Demodulator 310 provides the input data to edge detect unit 340 of state machine 320. Edge detect unit 340 detects the edge transitions of the input data (both low going pulses and high going pulses) and provides the edge detect information to other units in state machine 320. Specifically, edge detect unit 340 provides the edge detect information to command state machine 330, timer unit 350, symbol recovery unit 360, data calibration unit 370 and oscillator calibration unit 380. Timing information from the timer unit 350 is also provided on signal lines (not shown) to symbol recovery unit 360, data calibration unit 370 and oscillator calibration unit 380.
Oscillator calibration unit 380 uses oscillator calibration pulses from timer unit 350 to obtain tuning control signals for tuning oscillator 390. Oscillator 390 generates the system clock signal. Command state machine 330 generates backscatter control signals. The backscatter control signals comprise a backscatter enable signal (denoted “bks_en”) and a backscatter data signal (denoted “bks_data”).
The timer unit 350 operates using the system clock signal from oscillator 390. The timer unit 350 counts through every calibration/data period that is sent by the reader unit (not shown). The data calibration unit 370 stores the duration of the data calibration pulses T0, T1 and T2 using the timer unit 350 and the edge detect unit 340. The data calibration unit 370 provides these stored values of data calibration pulses T0, T1, and T2 to the symbol recovery unit 360 as T0_VAL, T1_VAL and T2_VAL.
The symbol recovery unit 360 generates flag pulses that indicate the likely data symbol (Zero symbol, One symbol, or Null symbol) that is present during each data period that has been activated by a low going pulse. Symbol recovery unit 360 generates a zero flag signal, a one flag signal, and a null flag signal and provides the flag signals to the command state machine 330.
FIG. 4 illustrates a timing diagram showing the three flag signals with respect to the data calibration pulses and waveforms of the Zero symbol, the One symbol and the Null symbol. When the low going pulse begins a data period, the Zero flag is set to a logical value of one. This means that the likely data symbol within the data period is first identified as a Zero symbol. If the high going pulse of a Zero symbol is detected before the occurrence of the T0 pulse, this means that the data symbol is a Zero symbol. The Zero flag is reset to a logical value of zero at the time of the T0 pulse.
The Zero flag pulse is “on” for approximately four and one half microseconds (4.5 μs). This is because the Zero flag pulse extends from zero microseconds (0.0 μs) at the initial low going pulse of the data symbol until the assertion of the T0 pulse at four and one half microseconds (4.5 μs).
If the timer unit 350 counts beyond the time represented by the T0 pulse and no high going pulse has been detected, this means that the likely data symbol is not a Zero symbol. Then the Zero flag is reset to a logical value of zero and the One flag is set to a logical value of one. This means that the likely data symbol within the data period is now identified as a One symbol. If the high going pulse of a One symbol is detected before the occurrence of the T1 pulse, this means that the data symbol is a One symbol. The One flag is reset to a logical value of zero at the time of the T1 pulse.
The One flag pulse is “on” for approximately three and twenty five hundredths microseconds (3.25 μs). This is because the One flag pulse extends from four and one half microseconds (4.5 μs) at the assertion of the T0 pulse until the assertion of the T1 pulse at seven and seventy five hundredths microseconds (7.75 μs).
If the timer unit 350 counts beyond the time represented by the T1 pulse and no high going pulse has been detected, this means that the likely data symbol is not a One symbol. Then the One flag is reset to a logical value of zero and the Null flag is set to a logical value of one. This means that the data symbol within the data period is now identified as a Null symbol. The Null flag continues with a logical value of one until the end of the data period.
The Null flag pulse is “on” for approximately four and seventh five hundredths microseconds (4.75 μs). This is because the Null flag pulse extends from seven and seventy five hundredths microseconds (7.75 μs) at the assertion of the T1 pulse until the end of the data period at twelve and one half microseconds (12.50 μs).
The rising edge of the Zero symbol waveform is spaced sufficiently far away from the T0 pulse. The rising edge of the One symbol waveform is spaced sufficiently far away from the T0 pulse and the T1 pulse. The rising edge of the Null symbol waveform is spaced sufficiently far away from the T1 pulse and the T2 pulse. Therefore, the rising edges of the Zero symbol waveform, the One symbol waveform, and the Null symbol waveform are also spaced sufficiently far away from the flag signals that are generated by the symbol recovery unit 360.
In the exemplary prior art state machine 320 the command state machine 330 operates using the system clock that is generated by oscillator 390. The command state machine 330 receives the output of the edge detect unit 340 and uses the output of the edge detect unit 340 to receive notification of a rising edge of an incoming input data signal. There is a delay involved in the edge detection process within the edge detect unit 340. This delay is on the order of two or three clock cycles. For a typical system clock that is operating at a frequency of two and two tenths megahertz (2.2 MHz) the delay is approximately from one microsecond (1.0 μs) to one and one half microseconds (1.5 μs).
The delay in the edge detect unit 340 means the command state machine 330 must wait for a period of time equal to the delay before the command state machine 330 receives the output of the edge detect unit 340. This, in turn, causes the outputs of the command state machine 330 to be delayed by a corresponding amount. It would be advantageous to eliminate this delay within state machine 320.
Therefore, there is a need in the art for a system and method that is capable of eliminating a delay in an edge detect signal that is provided to a command state machine within a state machine of a RFID tag. In particular, there is a need in the art for a system and method that is capable of rapidly providing an edge detect signal to a command state machine within a state machine of a RFID tag.